package v1

import (
	"donkey-admin/internal/model/do"
	"donkey-admin/internal/model/entity"
	"github.com/gogf/gf/v2/frame/g"
)

type MenuGetAllReq struct {
	g.Meta `path:"/AuthMenu.Get" tags:"menu" method:"get" summary:"获取所有菜单"`
}

type MenuGetAllRes struct {
	MenuList []entity.SysMenu `json:"menuList"`
}

type MenuAddReq struct {
	g.Meta        `path:"/AuthMenu.Add" tags:"menu" method:"post" summary:"新增菜单"`
	MenuName      string `json:"menuName" v:"required#菜单名称为必填参数"`         // 菜单名称
	MenuPath      string `json:"menuPath" v:"required#菜单路径为必填参数"`         // 菜单路径
	MenuTitle     string `json:"menuTitle" v:"required#菜单标题为必填参数"`        // 菜单标题
	MenuIcon      string `json:"menuIcon" v:"required#菜单图标为必填参数"`         // 菜单图标
	MenuType      string `json:"menuType" v:"required#菜单类型为必填参数"`         // 菜单类型menu,link,iframe默认为菜单
	MenuAffix     uint   `json:"menuAffix" d:"0"`                         // 菜单前置且不可关闭
	MenuTag       string `json:"menuTag"`                                 // 菜单tag标签
	MenuComponent string `json:"menuComponent" v:"required#菜单组件路径为必填参数" ` // 菜单组件路径
	MenuParentId  string `json:"menuParentId"`                            // 菜单父级ID
	MenuHidden    uint   `json:"menuHidden" d:"0"`                        // 菜单是否隐藏
	MenuOrder     uint   `json:"menuOrder" d:"0"`                         // 菜单排序
	MenuFullpage  uint   `json:"menuFullpage" d:"0"`                      // 是否整页路由
	MenuRedirect  string `json:"menuRedirect"`                            // 菜单重定向地址
}

type MenuAddRes struct {
	Uuid string `json:"uuid"`
}

type MenuDelReq struct {
	g.Meta `path:"/AuthMenu.Del" tags:"menu" method:"delete" summary:"删除菜单"`
	MenuID string `json:"menuID" v:"required"`
}

type MenuDelRes struct {
}

type MenuUpdateReq struct {
	g.Meta   `path:"/AuthMenu.Update" tags:"menu" method:"post" summary:"修改菜单"`
	MenuInfo do.SysMenu `json:"menuInfo"`
}

type MenuUpdateRes struct {
}
